// 封装操作cookie的方法

/**
 * 设置cookie的函数
 * @param {string} key     设置cookie的键名
 * @param {string} value   设置cookie对应的键值
 * @param {number} expires  设置cookie的有效时间 s
 */
function setCookie(key,value,expires){
  if(expires === undefined){  // 如果有效时间没有传递则默认就是会话级别
    document.cookie = `${key}=${value};path=/only`;
  }else{
    let time = new Date(new Date().getTime() - 8*60*60*1000 + expires*1000);
    document.cookie = `${key}=${value};expires=${time};path=/only`;
  }
}

/**
 * 根据键名删除cookie
 * @param {string} key 要删除的cookie
 */
function delCookie(key){
  setCookie(key,'',-1);
}

/**
 * 根据键名获取cookie值
 * @param {string} key 要cookie的键名
 * @return {string}  获取到的cookie值
 */
function getCookie(key){
  // console.log(document.cookie.split(';'));
  // ["like=study", " name=leon", " age=100"]
  // 遍历得到的数组
  let str;
  document.cookie.split(';').forEach(v=>{
    // console.log(v.trim().indexOf(key));
    if(v.trim().indexOf(key) === 0){
      str = v;
    }
  })
  // 如果没有对应的键名这返回空
  if(!str) return '';
  // console.log(str);  //  name=leon
  // console.log(str.split('=')[1]);
  return str.split('=')[1];
}


// 清空所有cookie
function deleteAllCookie() {
  document.cookie.split(';').forEach(v => {
    // console.log(v);
    let key = v.trim().split('=')[0];
    setCookie(key,'',-1);
    // console.log(key);
  })
}